Cloud computing and related data center technologies will increasingly offer a low maintenance and transparent method of remotely storing, accessing, and maintaining personal computer workspaces. Examples include software development environments and other project-related workspaces that are either too resource-intensive for or natively incompatible with one's personal computing device, which has quickly grown to include “thin clients” such as smartphones and netbooks. In many cases, users are either explicitly maintaining “multiple” computer workspaces (e.g., one for a coding project, one for a research project, one for media management, etc.) or engage in day-to-day computing activities that can easily be classified under different workspaces. This further increases the attraction of using the cloud model for workspace maintenance since it allows a transparent way of maintaining multiple workspaces without worrying about stressing the resources of the personal machine.
With respect to migrating workspaces across different datacenters, conventional migration methods encounter various challenges. For instance, for users who maintain large resource-intensive workspaces in the cloud, on-demand migration can be an insufficient proposition. The major reason is that workspace migration can take an extensive amount of time depending on the size of the workspace, network link congestion, and physical distance of migration. Also, on-demand migration might not provide the best “global” migration decision for a cloud environment, i.e., a decision that considers workspace migrations of “all” users of the system at any given time. Finally, manually determining what workspace(s) to migrate and where to migrate it (or them) can be rather inconvenient on the part of the user.